# -*- coding: utf-8 -*-
import json
from openai import OpenAI
from industryClassLib import allIndustryClass3, allPartIndustryClass3

class agentMajorProduct():
    def __init__(self):
        self.client = OpenAI(api_key="sk-de3197a618e3436f8a76b482a17da844", base_url="https://api.deepseek.com/beta")

    def run(self, companyName, product, business, industry):
        # 输入整理
        if not product:
            product = "未提及"
        if not business:
            business = "未提及"
        if not industry:
            industry = "未提及"
        systemPrompt = """
# 角色
产品分析专家

# 技能
1.具有丰富的产品分析的背景知识；
2.擅长根据提供的信息，准确的筛选出公司主要的产品； 

# 公司产品格式
以“;”分割多个产品，每个产品格式为“产品名（产品概述）”，当产品概述不存在时，格式为“产品名”。

# 筛选要求
1. 筛选的产品尽可能全面覆盖公司的不同方向的业务；
2. 功能高度重复的产品可以在保留主要的产品后删除冗余的；
3. 对于概念性、宽泛性和不明确的产品可以删除，如人工智能、智能制造；
4. 对于明显错误的产品可以删除；
5. 对于产品名中仅有产品型号，但是没有产品名的，可以结合其他信息增加产品概述字符来解释产品，如果没有明确含义则删除；

# 指令
1.结合'公司名称'、'主营业务'和'主要行业'的含义，理解每个'公司产品'是在该含义所涉及的行业范围内的产品，分析每个产品的含义；
2.根据'公司名称'、'主营业务'和'主要行业'，按照'筛选要求'筛选出能够代表公司行业的至多10个产品；
3.按照JSON格式输出筛选出的能够代表公司行业的至多10个产品，JSON格式为“{"product":"产品1名（产品1概述）;产品2名（产品2概述）;"}”，请确保输出的内容格式正确和内容准确。

# 注意
1. 每个产品名和产品概述与输入保持一致；
2. 必须使用输入的产品进行筛选，严禁创造新产品；

# 示例（示例为筛选出5个代表性产品）
## 公司名称示例
广州市虎头电池集团股份有限公司

## 公司产品示例
大号碱性电池（持久耐用绿色环保）;五号碱性电池（持久耐用绿色环保）;七号碱性电池（持久耐用绿色环保）;九伏碱性电池（持久耐用绿色环保）;大号高功率电池（燃气炉热水器适用）;五号高功率电池（充足电力美观实用）;汽车蓄电池（汽车电瓶蓄电池免维护）

## 主营业务示例
广州市虎头电池集团股份有限公司是中国干电池行业的骨干企业，拥有自营进出口权，年销售干电池超60亿只，外贸额超4亿美元，其销量、出口量、出口额、业务收入等在中国干电池行业名列前茅，名列中国对非洲出口企业百强榜第7位。公司主要产品有干电池系列、蓄电池系列、电池原材料系列、照明系列、电池用电器具系列、应急电源系列、太阳能系列、运动品系列、日用品系列和食品系列等十大系列的产品。公司致力于提供持久耐用、绿色环保的电池产品，满足各种应用需求，包括家庭、工业和特殊用途。

## 主要行业示例
广州市虎头电池集团股份有限公司属于电池制造行业，专注于干电池和蓄电池的生产与销售。公司在电池行业中具有显著的市场地位和影响力，产品广泛应用于家庭、工业、照明、应急电源等多个领域。公司还涉及电池原材料、电池用电器具、太阳能产品等多个细分行业，是中国对非洲出口企业百强榜中的重要成员。

## 输出示例
{"product":"大号碱性电池（持久耐用绿色环保）;五号碱性电池（持久耐用绿色环保）;七号碱性电池（持久耐用绿色环保）;大号高功率电池（燃气炉热水器适用）;汽车蓄电池（汽车电瓶蓄电池免维护）"}
        """

        words = """
# 公司名称
%s

# 公司产品
%s

# 主营业务
%s

# 主要行业
%s

请按照'指令'，筛选出的能够代表公司行业的至多10个产品。""" % (companyName, product, business, industry)
        response = self.client.chat.completions.create(
            model="deepseek-chat",
            messages=[
                {'role': 'system', 'content': f'{systemPrompt}'},
                {'role': 'user', 'content': f'{words}'}],
            temperature=0.1,
            response_format={"type": "json_object"},
            max_tokens=8192
        )
        res = {}
        try:
            res = json.loads(response.choices[0].message.content)
            return res
        except Exception as e:
            log = "[ERROR]agentMajorProduct.run(%s): %s"%(companyName, e)
            if res:
                self.logs = self.logs + str(res) + "\n"
            self.logs = self.logs + log + "\n"
            return {}

    def check(self, r):
        res = ""
        if "product" in r:
            return r["product"]
        else:
            log = "[ERROR]agentMajorProduct.check(product格式错误)"
            self.logs = self.logs + log + "\n"
        return res

    def progress(self, companyName, product, business, industry):
        self.logs = ""
        res = self.run(companyName, product, business, industry)
        res = self.check(res)
        return res, self.logs



if __name__ == "__main__":
    # 【一次性打标】
    companyName = "宁波聚轩信息科技有限公司"
    product = "D11；轴管通（轴承行业数字化系统）;易紧固（紧固件行业数字化系统）;液压宝（液压行业数字化系统）;大圣SASS云平台;大圣云ERP;大圣云MES;大圣云WMS;大圣机联网系统;供应商协同平台;学习分享平台;大圣PASS云平台;在线表单开发平台;在线报表开发平台;在线大屏开发平台;在线工作流引擎;在线移动端APP开发平台;壁挂式工位机;立式工位机（报工台）;电子看板;手持（PDA）及扫码枪;工业平板;打印机;数采网关"
    business = "宁波聚轩信息科技有限公司专注于制造业数字化管理领域，提供包括ERP、MES、WMS等在内的全面数字化解决方案，致力于帮助中小制造业提升管理水平，提高运营效益，降低制造成本。公司产品涵盖行业数字化系统、云平台、智能硬件等多个领域，通过数据自动化采集、可视化呈现和智能化应用，实现生产过程的精细化管理，提高生产效率和产品质量。"
    industry = "宁波聚轩信息科技有限公司主要涉及信息技术行业，专注于制造业的数字化转型，特别是在工业互联网、智能制造、工业软件开发等领域。公司提供的产品和服务广泛应用于轴承、紧固件、液压、汽车零部件等多个细分行业，帮助企业实现数字化管理和智能化生产。"
    agent = agentMajorProduct()
    r,logs = agent.progress(companyName, product, business, industry)
    print(r)
    print(logs)
